# myfun

def add(a,b):
    return a+b

def minu(a,b):
    return a-b

def multi(a,b):
    return a*b

def divicse(a,b):
    return a/b

re=add(1,8)
print(re)

rq=min(10,5)
print(rq)

rw=multi(2,6)
print(rw)

rr=divicse(10,5)
print(rr)


# 功能：讲解unnittest使用方法
# a-test开头方法
# b-setup和teardown方法
# c-set-upclass和teardownclass
import unittest
#继承unittest。testcase
class mytest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print('整个uniittets套件前一共执行一边')
        print("---",__name__)

    # 每条test开头的用例方法执行前必须执行一边
    def setup(self):
        print('执行setup方嘎')

    def test_add1(self):
        print('执行add1方法')
        print('————1')

    def test_add2(self):
        print('执行前add2方法')

    def testsown(self):
        print('执行前testdown')

    @classmethod
    def testdownclass(cls):
        print('整个nuiittest套件执行后一共执行一边')

if __name__ == '__main__':
    print('----')
    # suite=unittest.TestSuite()
    suite=mytest()
    suite.setup()
    suite.setUpClass()
    suite.test_add1()
    suite.testdownclass()


# 导入包或者模块的时候，被导入包/模块内大代码会自动执行
# 为了解决问题，
# 我们通常采用被导入的模块地步通过
# if————name__=='main来解决
import  test

from 接口框架第一周.testcase import testcast

import unittest


class mytest(unittest.TestCase):
    def setup(self):
        print('执行setup方法')

    def tetsdown(self):
        print('执行testdown方法')

    def test_add(self):
        print('执行test_add')
        self.assertEqual(add(1,2),3)

    def test_mul(self):
        print('执行test——mul')
        self.assertEqual(multi(1,2),3)

if __name__ == '__main__':

    suiti=unittest.TestSuite()

# 讲解unittest装饰器规范
class aplus:
    member='hello word'
    def __init__(self):
        pass

    @classmethod
    def print1(cls):
        print('print 1:',cls.member)

    def print2(self):
        print('print1',self.member)

    @classmethod
    def print3(paratest):
        print('print3',paratest.member)

    @staticmethod
    def print4():
        print('heoo')

a=aplus()
aplus.print1()
a.print1()
a.print2()
aplus.print3()
a.print3()
aplus.print4()


class testfun1(unittest.TestCase):
    def test_cdd(self):
        print('执行add')
        self.assertEqual(3,add(3,4))
        self.assertEqual(3,add(4,4))

    def test_bminus(self):
        print('执行前minus')
        self.assertEqual(1,minu(3,3))

class testfun2(unittest.TestCase):
    def testmuiti(self):
        print('执行mulyi')
        self.assertEqual(6,multi(7,7))
    def testdiveces(self):
        self.assertEqual(2,divicse(6,6))
        self.assertEqual(2.5,divicse(5,2))
if __name__ == '__main__':
    unittest.main()



a=1
class test1(unittest.TestCase):
    # testcase基类方法，所有case执行前自动执行
    @classmethod
    def setupclass(cls):
        print('这是所有用例执行前的准备工作')
        cls.a=1
    @classmethod
    def testdownclass(cls):
        print('这是所有测试用例后的清理工作')

    def setup(self):
        print('这是一个测试用例前准备工作')

    def teardown(self):
        print('这是一个测试用例后的清理工作')

    @unittest.skip('我想临时跳过测试用例')
    def test_add(self):
        self.assertEqual(3,add(1,2))
        self.assertNotEqual(3,add(2,3))

    def test_minus(self):
        self.assertEqual('跳过这个测试用例')
        self.assertEqual(1,minu(3,2))

    def test_muiti(self):
        self.assertEqual(6,multi(2,3))

    def test_divicse(self):
        self.assertEqual(2,divicse(6,3))
        self.assertEqual(2.5,divicse(5,2))

    @unittest.skipIf((a>0,'条件不通过'))
    def test_skip(self):
        print('我被调股哦了')
        self.assertEqual(1,1)

if __name__ == '__main__':
    unittest.main(verbosity=2)